#!/usr/bin/python
# --coding:utf-8--


import re

# 1. re.findall：匹配所有符合规则的内容，返回包含结果的列表
text = '我今年18岁，明年19岁，后年20岁'
res = re.findall('\d+', text)
print(res)


# 2. re.search：扫描整个字符串并返回第一个成功的匹配
text = '我今年18岁，明年19岁，后年20岁'
res = re.search('\d+', text)
print(res.group())


# 3. re.sub函数：用于替换字符串中的匹配项。返回替换后的值
text = '我今年18岁，明年19岁，后年20岁, 青春永驻！'
res = re.sub('\d+', '18', text)
print(res)


# 4. re.match函数：尝试从字符串的起始位置匹配一个模式，如果不是起始位置匹配成功，match()就返回none。
text = '我今年18岁，明年19岁，后年20岁'
res = re.match('我', text)
print(res.group())


# 5. re.split函数：使用正则表达式来分割字符串
text = "hello nice to meet you"
res = re.split('\W', text)
print(res)


# 6. re.compile函数
"""
对于一些经常要用到的正则表达式，可以使用compile进行编译，后期再使用的时候可以直接拿过来用，执行效率会更快。
而且compile还可以指定flag=re.VERBOSE，在写正则表达式的时候可以做好注释。
"""
text = "我今年18.6岁了，快19岁了"
r = re.compile(r"""
                \d+ # 小数点前面的数字
                \.? # 小数点
                \d* # 小数点后面的数字
                """, re.VERBOSE)
ret = re.search(r, text)
print(ret.group())

